package debut.peinture;

import android.app.Activity;
import android.app.Fragment;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.Uri;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.speech.tts.TextToSpeech;
import android.view.ContextMenu;
import android.view.LayoutInflater;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.Gallery;
import android.widget.TextView;
import android.widget.AdapterView.AdapterContextMenuInfo;
import android.widget.AdapterView.OnItemSelectedListener;

public class FragGalerie extends Fragment {
	private View principale;
	
	@Override
	public View onCreateView(LayoutInflater inflateur, ViewGroup container, Bundle etatSauve) {
		principale = inflateur.inflate(R.layout.fragmentgalerie, container, false);
//		remplirGalerie();
		principale.findViewById(R.id.idbtnsuivant).setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
//				setProgressBarIndeterminateVisibility(true);
				Gallery galerie = (Gallery) principale.findViewById(R.id.idfond);
				int posi = galerie.getSelectedItemPosition();
				if(posi+1 < galerie.getCount()) galerie.setSelection(posi+1);
/*				if(curseur.moveToNext()) {
					if(afficheImage(v.getContext())) {
						if(curseur.getPosition() > 0) findViewById(R.id.idbtnpreced).setEnabled(true);
						if(curseur.getPosition() >= (curseur.getCount()-1)) findViewById(R.id.idbtnsuivant).setEnabled(false);
					} else {
						curseur.moveToPrevious();
					}
				}*/
//				setProgressBarIndeterminateVisibility(false);
			}
		});
		principale.findViewById(R.id.idbtnpreced).setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
//				setProgressBarIndeterminateVisibility(true);
				Gallery galerie = (Gallery) principale.findViewById(R.id.idfond);
				int posi = galerie.getSelectedItemPosition();
				if(posi-1 >= 0) galerie.setSelection(posi-1);
/*				if(curseur.moveToPrevious()) {
					if(afficheImage(v.getContext())) {
						if(curseur.getPosition() < 1) findViewById(R.id.idbtnpreced).setEnabled(false);
						if(curseur.getPosition() < curseur.getCount()) findViewById(R.id.idbtnsuivant).setEnabled(true);
					} else {
						curseur.moveToNext();
					}
				}*/
//				setProgressBarIndeterminateVisibility(false);
			}
		});
		this.registerForContextMenu(principale.findViewById(R.id.idfond));
		return principale;
	}
	
	public void remplirGalerie() {
		Gallery galerie = (Gallery) principale.findViewById(R.id.idfond);
    	PeintureGallerieAdapteur pga = new PeintureGallerieAdapteur(principale.getContext(), ((DroidPaintings)getActivity()).curseur);
    	galerie.setAdapter(pga);
//    	((DroidPaintings)getActivity()).indexencours = 0;
    	galerie.setSelection(((DroidPaintings)getActivity()).indexencours);
    	String titre = ((PeintureDonnees)pga.getItem(((DroidPaintings)getActivity()).indexencours)).getTitre();
		String peintre = ((PeintureDonnees)pga.getItem(((DroidPaintings)getActivity()).indexencours)).getPeintre();
		String phrase = titre + "\n" + peintre;
		((TextView)principale.findViewById(R.id.idtableaudesc)).setText(phrase);
//    	GridView vuegrid = (GridView) principale.findViewById(R.id.vuegrille);
//    	PeintureGrilleAdapteur pgr = new PeintureGrilleAdapteur(contexte, ((DroidPaintings)getActivity()).curseur);
//		vuegrid.setAdapter(pgr);
/*    	String[] colonnes = contexte.getResources().getStringArray(R.array.colonnes);
    	for(int n=0; n < curseur.getCount(); n++) {
        	if(n==0) curseur.moveToFirst();
        	else curseur.moveToNext();
        	String urlp = curseur.getString(curseur.getColumnIndex(colonnes[0]));
        	String titre = curseur.getString(curseur.getColumnIndex(colonnes[1]));
        	String peintre = curseur.getString(curseur.getColumnIndex(colonnes[2]));
        	String urli = curseur.getString(curseur.getColumnIndex(colonnes[7]));
        	pga.addItem(new PeintureDonnees(urlp,titre,peintre,urli));
        	pgr.addItem(new PeintureDonnees(urlp,titre,peintre,urli));
        }*/
    	galerie.setOnItemSelectedListener(new OnItemSelectedListener() {
			@Override
			public void onItemSelected(AdapterView<?> parent, View vue, int position, long id) {
				((DroidPaintings)getActivity()).indexencours = position;
				((DroidPaintings)getActivity()).curseur.moveToPosition(position);
				String titre = ((PeintureDonnees)((PeintureGallerieAdapteur)parent.getAdapter()).getItem(position)).getTitre();
				String peintre = ((PeintureDonnees)((PeintureGallerieAdapteur)parent.getAdapter()).getItem(position)).getPeintre();
				String phrase = titre + "\n" + peintre;
				((TextView)principale.findViewById(R.id.idtableaudesc)).setText(phrase);
				SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(parent.getContext());
            	Boolean ouiVoix = null;
            	if (pref != null)
        		{
        			ouiVoix = pref.getBoolean(parent.getContext().getResources().getString(R.string.prefclevoix), true);
        		}
            	if(ouiVoix && ((DroidPaintings)getActivity()).okParler) {
            		((DroidPaintings)getActivity()).monTts.stop();
            		((DroidPaintings)getActivity()).monTts.speak(phrase.replace("-", " "), TextToSpeech.QUEUE_FLUSH, null);
            	}
//            	Animation anim = AnimationUtils.loadAnimation(parent.getContext(), R.anim.disparait);
//            	principale.findViewById(R.id.idtableaudesc).setAnimation(anim);
			}

			@Override
			public void onNothingSelected(AdapterView<?> arg0) {
								
			}
    	});
/*    	vuegrid.setOnItemClickListener(new OnItemClickListener() {
			@Override
			public void onItemClick(AdapterView<?> parent, View vue, int position, long id) {
				((ViewAnimator) principale.findViewById(R.id.navig)).showPrevious();
				((ViewAnimator) principale.findViewById(R.id.navig)).showPrevious();
				((DroidPaintings)getActivity()).indexencours = position;
				((DroidPaintings)getActivity()).curseur.moveToPosition(position);
				galerie.setSelection(position);
			}
    	});*/
    }
	
//	@Override
//    public void onStart() {
//		super.onStart();	
//		((Gallery) principale.findViewById(R.id.idfond)).setSelection(((DroidPaintings)getActivity()).indexencours);
//	}

	@Override
	public void onCreateContextMenu(ContextMenu menu, View vue, ContextMenuInfo menuInfo) {
		super.onCreateContextMenu(menu, vue, menuInfo);
		MenuInflater inflateur = ((Activity)principale.getContext()).getMenuInflater();
		inflateur.inflate(R.menu.actionspeinture, menu);
	}
	
	@Override
	public boolean onContextItemSelected(MenuItem item) {
		AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
		String[] colonnes = principale.getContext().getResources().getStringArray(R.array.colonnes);
		switch (item.getItemId()) {
		case R.id.iteminfo:
			Gallery galerie = (Gallery) principale.findViewById(R.id.idfond);
			int posi = galerie.getSelectedItemPosition();
			((DroidPaintings)getActivity()).curseur.moveToPosition(posi);
			String pagewiki = ((DroidPaintings)getActivity()).curseur.getString(
										((DroidPaintings)getActivity()).curseur.getColumnIndex(colonnes[6]));
	    	Uri uripw = Uri.parse(pagewiki);
	    	Intent lancew = new Intent(Intent.ACTION_VIEW,uripw);
//	    	lance.putExtra(SearchManager.QUERY, nom + " " + titre);
	    	startActivity(lancew);
			return true;
		case R.id.itempartage:
			String titre = ((DroidPaintings)getActivity()).curseur.getString(
										((DroidPaintings)getActivity()).curseur.getColumnIndex(colonnes[1]));
    		String nom = ((DroidPaintings)getActivity()).curseur.getString(
    									((DroidPaintings)getActivity()).curseur.getColumnIndex(colonnes[2]));
    		String lien = ((DroidPaintings)getActivity()).curseur.getString(
    									((DroidPaintings)getActivity()).curseur.getColumnIndex(colonnes[6]));
			Intent lancep = new Intent(Intent.ACTION_SEND)
				.putExtra(Intent.EXTRA_TEXT, nom + "\n" + titre + "\n" + lien + "\nhttp://goo.gl/cCGE9").setType("text/plain")
	   			.putExtra(Intent.EXTRA_SUBJECT, principale.getContext().getResources().getString(R.string.app_name));
	    	startActivityForResult(Intent.createChooser(lancep, ""),0);
	    	return true;
		default:
			return super.onContextItemSelected(item);
		}
	}
}